In the bowl of a stand mixer or in a large mixing bowl, add the flour then the yeast, sugar, garlic powder, Italian seasoning and salt. Stir to combine. Warm the milk in the microwave in 20-30 second increments until approximately 105º-110ºF. Do not exceed 110ºF or you will kill the yeast.
Add butter to bowl then pour warm milk on top of dry ingredients followed by the lightly beaten egg.
Using the dough hook attachment, mix on low speed until the ingredients come together in a shaggy dough. Turn mixer to medium low speed and continue kneading for about 3-4 minutes. If the dough is sticking to the sides of the bowl, add 1 tablespoon more flour and continue kneading. The dough should be gathered around the dough hook and not sticking to the sides, even though it may be sticking to the bottom of the bowl. The dough will be soft.
If you do not have a mixer, you can mix the dough together with a wooden spoon until it comes together. Then transfer it to a lightly floured work surface and, using lightly floured hands, knead it for 3-4 minutes. If the dough is too sticky to handle, add 1-2 more tablespoons of flour and continue kneading.
Pour a small amount of vegetable oil or nonstick cooking spray into a clean bowl. Shape the dough into a ball and place it in the greased bowl, turning the dough over to coat in oil on all sides. Cover with plastic wrap and place in a warm spot to rise until doubled in size, about 1 hour. I like to place the dough in my cold oven with just the light on.
Prepare the filling: While the dough is rising, mix together the filling. Be sure your butter is soft enough to mix with just a fork. If it’s too cool, place it in a small microwave safe bowl and microwave on high for 5 seconds. If the butter is still too cool, microwave for another 5 seconds. Mash the butter with a fork then add the italian seasoning, garlic powder, and salt. Stir until well combined. Set aside on the counter until ready to use. Do not place in the fridge or it will be too cold to spread easily on the dough. If making the filling ahead of time, cover with plastic wrap and place in the fridge. Remove from the fridge at least one hour before using to allow it to come to room temperature.
Line a 9x5-inch loaf pan with parchment paper and set aside
Once the dough has doubled in size, punch down the dough to release the air. Place dough on a lightly floured work surface. Divide it into 12 equally sized pieces. I like to cut the dough in half first, then cut each half into halves so you have 4 pieces. Then cut each piece into thirds. The pieces do not need to be exactly the same size.
On a clean counter working with one piece of dough at a time, gently press the dough to flatten then roll flat into a rectangle, about 4 inches by 6-7 inches, using a rolling pin. Using an offset spatula or silicone spatula, spread 2 teaspoons of the filling mixture onto the dough, covering the surface. Sprinkle with 1 tablespoon of mozzarella cheese and ½-1 teaspoon parmesan cheese. At one end, place 2-3 slices of pepperoni. Take the edge closest to you (should be the short edge) and fold up and over the top half of the rectangle. Press down gently and place, open side facing up, in the greased loaf pan. Repeat with remaining pieces of dough, placing the prepared dough next to each other in the pan. Reserve remaining butter mixture for topping
Cover with plastic wrap and allow to rise in a warm spot until puffy and the top of the dough is even with the height of the loaf pan, about 35-40 minutes.
Preheat oven to 350°F and adjust the oven rack to the middle position in the oven
Remove the plastic wrap and bake until golden brown, about 30-35 minutes. Check the loaf after 25 minutes - if you find the top of the loaf is browning too quickly, tent with aluminum foil. Remove from the oven and place the pan on a wire rack. Immediately brush with remaining butter mixture, melted, and sprinkle with 1-2 tablespoons parmesan cheese, if desired
Cool for 10 minutes in the pan. Lift bread out of pan and . serve immediately with a side of warm marinara sauce for dipping