Preheat oven to 375 degrees F. In a large frying pan over medium heat, combine the butter, oil, garlic, shallot, salt and pepper. Sauté until the shallots are tender, about 2-3 minutes. Add the brussels sprouts and stir to coat in the oil and butter. Cook until sprouts have softened, about 5 minutes.
Remove the brussels sprouts mixture from the frying pan and set aside.
In the same frying pan over low heat, melt the butter and once butter has turned frothy, whisk in the flour until it turns into a paste. Slowly pour in the milk and add the cream cheese whisking continuously ensuring no lumps form and the butter and flour are incorporated. Season with salt and pepper.
Raise the heat to medium and continue to whisk until the mixture is simmering and small bubbles form. Stir in the cheeses until they have melted and the cheese sauce has thickened, about 5 minutes. The cheese sauce will coat the back of a wooden spoon when done.
Add the cooked brussels sprouts to the cheese mixture and stir until all of the brussels sprouts are drenched in the cheese sauce. Pour into an 8 x 8 inch baking dish and top with more cheese!
Bake for 15-20 minutes until the sides of the casserole turn golden brown and the cheese is bubbly and melty. Enjoy!