Combine milk and flour in a small pot over low heat.
Stirring frequently, heat the mixture until the texture becomes like a thick pudding.
Remove the roux from heat and transfer to a bowl. Cover and allow to cool to room temperature.
Stand Mixer Method:
Add all the dry ingredients to the mixing bowl, sifting through a metal sieve to work out any large lumps.
Combine the room temperature roux, eggs, and warm milk and mix together. Add to the dry ingredients in the mixing bowl.
Using the dough hook attachment for your mixer, mix the ingredients for about a minute.
Add the softened butter to the bowl and scrape down the sides with a rubber spatula.
Turn the machine back on and let it mix on low speed for about 15-20 minutes until bread becomes smoother, scraping down the sides of the bowl as necessary.
Hand Kneading Method:
In a large mixing bowl, sift together all the dry ingredients.
Combine the room temperature roux, eggs, and warm milk and add to the dry ingredients.
Mix the wet into the dry using a spoon until mostly combined.
Add softened butter and start kneading it in with your hands. Dough will be very sticky.
Continue to work and knead the bread for 15 minutes at least until dough becomes smoother and more cohesive.
Shaping the dough for a loaf:
Shape dough into a ball and cover with a cloth or plastic wrap. Allow to rise for about 1 hour until it has doubled in size.
Transfer the dough to a floured work surface. Cut into 2 equal portions and work with only one portion at a time. Place the other dough section aside.
Cut dough into 3 chunks.
Using a rolling pin dusted with flour, roll one dough portion into a rectangle on a floured work surface.
Fold the rectangle into 3rds lengthwise. Flip it over so the seam side is down.
Flatten with rolling pin again. Flip the dough over so the seam side is now up.
Starting from a short end, snugly roll the dough until you end up with a roll.
Place the roll into a parchment lined loaf pan, seam side down. Repeat with the remaining two dough chunks.
Cover loaf pan with a towel or plastic wrap and let rise about an hour, until dough has expanded to fill the pan.
Shaping the dough for rolls:
Cut dough into 8 equal portions.
Roll into a log about 10-inches (25 cm) long. Fold it in half.
Starting from the folded end, twist the dough.
Tucking the tails in, roll snuggly into a round shape. Place on a greased baking dish. Repeat with remaining dough.
Cover rolls with a towel or plastic wrap and let rise about an hour.
Baking:
Preheat oven 350 deg F (180C).
Brush bread dough with egg wash.
Bake for 25 minutes.
Let cool 15 minutes before serving.
Notes
You can use bread flour instead of all-purpose flour for this recipe. Bread flour has slightly higher protein and will give the bread slightly more chew than all-purpose. Both flours work.
If you do not have caster sugar, you can process regular sugar in the food processor for about a minute to make it fine like caster sugar. Alternatively, regular sugar will also work in a pinch if you don't have any other options.
Do not use icing sugar. It is too fine and will not give the bread the right texture. It is also often mixed with cornstarch to prevent clumping.
I have not tried it, but if you choose to use a non-dairy milk, choose one that contains more fat like a nut milk or coconut milk. Note that it may affect the flavor of the bread.
If you do not want to fuss with making 3 separate mini rolls for the loaf of bread, simply shape the dough into a cohesive ball, or roll it into one big roll and set it right in the loaf pan. Keep in mind that rolling or braiding the dough is what gives it that "stretching" quality when you pull it apart, however the bread will still be delicious just the same!
If you are using a stand mixer to work the dough, you will have a much softer, finer texture than if you work it by hand. However, from my own experience, working the dough by hand still yields delicious results.
The dough will be very sticky when you first start working in the butter. Then it will become more tacky as it is worked longer, but not so sticky that you cannot get it off your hands or the dough hook. You can always sprinkle a bit of extra flour on the dough to help with working it.
For a shiny glistening bun, brush the buns after they come out of the oven with either melted butter or a simple syrup, if desired.