In a bowl, combine warm milk, sugar, and yeast. Let it sit for 5 minutes until foamy. Add egg, melted butter, salt, and 2 ½ cups of the flour. Mix until combined, adding more flour as needed until dough is soft and slightly tacky.
Knead dough by hand or with a dough hook for 6–8 minutes until smooth and elastic. Transfer to a greased bowl, cover, and let rise for about 1 hour or until doubled in size.
Finely chop or pulse broccoli and ham in a food processor if needed. Add shredded cheese, cream cheese or Parmesan/mayo, Dijon, garlic powder, onion powder, pepper, and red pepper flakes. Mix until combined.
After the dough has risen, punch it down and roll it into a 12×18-inch rectangle on a lightly floured surface.
Spread the broccoli ham filling evenly over the dough, leaving a ½-inch border around the edges. Tightly roll the dough from the long side into a log.
Using a serrated knife, slice the log into 1-inch rolls (about 16 pieces). Place them on a greased or parchment-lined baking sheet.
Mix melted butter with garlic powder. Brush the tops of the rolls and sprinkle with Parmesan. Let them rest for 15–20 minutes while the oven preheats to 375°F.
Bake for 18–22 minutes or until golden brown and the cheese is bubbly. Brush with additional melted butter if desired.
Serve warm with ranch, honey mustard, cheese sauce, or your favorite dipping sauce.