In a small saucepan, bring the milk to a simmer. Remove from heat and stir in butter and sugar. Set aside to cool.
Dissolve yeast in the warm water and let sit until foamy (while the milk mixture cools).
Combine milk mixture, yeast, eggs, salt (careful not to pour the salt on the yeast), and 3 cups of flour in a stand mixer with the dough attachment and mix until smooth.
Add remaining flour in ½ cup increments and mix until it forms a smooth ball. You may need to add additional flour if mixture is too sticky. Continue mixing dough for 3 minutes until silky.
Remove from mixing bowl and place in a greased bowl. Cover with a towel and set aside to rise until doubled (about 30 minutes to 1 hour.)
Punch down dough. Pull off a piece of dough (about the size of an egg), roll in your hands until a ball shape forms. Slightly flatten the ball, and tuck the sides under to meet. (This will give you a smooth top to your roll.)
Place on a sheet pan. Repeat, placing dough balls about 1 inch apart. Cover and let rise for 30 minutes or until doubled.
Preheat oven to 350 degrees. Brush dough with melted butter and bake for 20 minutes or until lightly golden brown. Remove from oven and brush with more butter (if desired.) Serve warm.