In a big bowl, mix 2 cups of flour with the yeast and salt.
In a small saucepan, warm the milk, sugar, and butter until the butter melts and it feels warm (about 115 degrees).
Pour the milk mixture into the flour mixture, add the beaten egg, and beat with an electric mixer on low for 30 seconds.
Scrape the sides of the bowl and then beat on high for 3 minutes.
Add enough of the remaining flour to form a soft, non-sticky dough.
Put the dough on a floured surface and knead for about 8 minutes until it's smooth and stretchy. Alternatively, you can use a heavy-duty electric mixer with a bread hook for about 4 minutes.
Grease a bowl lightly, put the dough in it, and turn it once to coat the surface of the dough. Cover and let it rise in a warm place until it's about twice its size, which takes about 1 1/2 hours.
After it rises, punch the dough down, put it on a floured surface, and cover it with a towel for 10 minutes.