How to Make It
Preheat oven to 350°F. Heat oil in a 12-inch cast-iron skillet over medium-high. Add shallots; cook, stirring occasionally, until shallots have softened, 1 to 2 minutes. Add brussels sprouts and garlic; season with 1/2 teaspoon salt and 1/4 teaspoon pepper. Cook, stirring often, until sprouts have softened, about 5 minutes. Add mushrooms and 1 tablespoon butter. Cook, stirring often, until mushrooms are softened and slightly caramelized, about 4 minutes. Add sage, and cook 1 minute. Remove from heat, and let cool slightly, about 15 minutes.
Beat eggs and milk in a medium bowl; season with remaining 1 1/2 teaspoons salt and remaining 3/4 teaspoon pepper. Cut remaining 3 tablespoons butter into cubes. Add cubed butter, brioche cubes, Gruyère, and Parmesan to brussels sprouts mixture in skillet; gently toss to combine. Pour egg mixture brioche mixture; let stand 15 minutes to allow bread to absorb egg mixture. (At this point, you can place it in the fridge for several hours or overnight. When ready to cook, take it out of the fridge, and let it come to room temperature before baking.)
Bake in preheated oven until golden and center is set, 40 to 45 minutes. Serve hot or warm.