To roast garlic, slice top from each bulb. Place each on a square of foil and drizzle a teaspoon of olive oil over each. Seal foil over each head and bake for 45 to 55 minutes, until tender, in a 350°F oven. Unwrap garlic and cool until it can be handled. Squeeze soft garlic from each bulb into a small bowl. Add 3 tablespoons butter and mix well.
Heat 1 tablespoon olive oil in a skillet over medium heat. Add shallots and cook until tender, but not browned, about 3 to 5 minutes. Set aside to cool.
For dough, combine 2 cups flour, yeast, sugar, salt, garlic powder and parmesan cheese in a large mixing bowl. Heat milk, water and butter to very warm (120° to 130°F). Add to flour mixture and beat for 2 minutes. Stir in enough additional flour to make a soft dough.
Turn out dough on a lightly floured surface and knead until smooth and elastic, about 8 to 10 minutes. Cover and let dough rest 10 minutes.
Roll dough into a 15 x 10-inch rectangle. Cut lengthwise to make two 15 x 5-inch rectangles.
Spread each rectangle with half of the garlic mixture, leaving a 1/2-inch edge on all sides. Divide shallots evenly between the two rectangles. Sprinkle half the Asiago cheese over each. Roll up each rectangle lengthwise, pinching ends to seal. Place the two rolls side by side and twist together. Pinch ends to seal.
Transfer loaf to a greased baking sheet and cover. Let rise in a warm, draft-free place for about 30 to 45 minutes, or until doubled.
To finish, brush the loaf with melted butter and top with parmesan cheese, if desired. Bake in a preheated 400°F oven for 30 minutes or until golden brown. Cover with foil, if bread is getting too browned.