Attach the dough blade to a food processor. Place dry ingredients in the bowl: flour, sugar, salt, instant yeast (if using active yeast, see note below).
Combine wet ingredients in a large measuring cup: milk, eggs, butter. (A 2 cup measuring cup will be very full. A 4 cup measuring cup is better, but not everyone has one.) As the machine runs, carefully pour the wet ingredients in a slow and steady stream until a rough ball forms. Let dough rest 2 minutes. Then pulse for 30 seconds more. The dough will be sticky and rough looking.
Knead dough until smooth and elastic, about 5-10 minutes. Transfer to a greased bowl and cover with plastic wrap. Let rise in a warm, draft-free place until doubled in size, about 1-2 hours.
When the dough has doubled in size, punch it down. Then divide into 32 equal-sized rolls. I cut the dough in half, then keep cutting the dough in half until I get to 32. An easy way to keep track is to work with one half at a time and divide each half into 16 rolls. Cover and let rise until doubled in size, about 30-45 minutes.
Heat oven to 350F/175C during the second rise. When the rolls are ready, brush each roll with egg wash.
Bake until tops are shiny and brown, about 30-35 minutes. Remove from the oven and let sit for 10 minutes before serving. Enjoy!