Preheat oven to 400 degrees F. Lightly grease a 9x13-inch baking dish; set aside.
Bring a large pot of water to boil, add the broccoli and boil for 3 to 5 minutes, until still firm, but tender enough that a fork can pierce through. Drain the broccoli in a colander and rinse with cold water.
In a medium skillet over medium-high heat, melt 3 tablespoons of the butter, then add the onion and mushrooms. Cook, stirring occasionally, until the mushrooms release liquid and it has all evaporated, about 10 minutes. Transfer to a bowl and set aside.
In a medium saucepan over medium heat, melt the remaining 5 tablespoons of butter, then add the flour and stir until the mixture is lightly browned and has a nutty aroma, 1 to 2 minutes. Slowly begin to add the milk, whisking constantly until all of the milk has been added. Cook for 2 to 3 minutes, until the mixture begins to thicken. Add one-third of the shredded cheese and stir until completely melted. Remove from the heat and stir in the reserved onions and mushrooms, then stir in the salt and pepper.
Place the broccoli in the prepared baking dish and sprinkle with another one-third of the shredded cheese. Pour the sauce over the broccoli, then sprinkle with the remaining third of the shredded cheese. In a small bowl, combine the Ritz cracker crumbs and melted butter until all of the crumbs are moistened. Sprinkle evenly over the top of the casserole.
Bake in the preheated oven until the top is golden brown and the sauce is bubbling, 15 to 25 minutes. Remove from the oven and let sit for 10 minutes before serving. Leftovers can be stored in an airtight container in the refrigerator for up to 2 days.
Extra Ingredients: Remove 1 cup of broccoli for each cup of an add-in you include. Some ideas: cooked chicken or ham (shredded or cubed), cooked rice, cubed pre-cooked potatoes, cooked and chopped bacon.
Storing: Keep in an airtight container in the refrigerator for up to 3 days.
Reheating: For a single serving, heat in the microwave in 30-second intervals until warmed through. To reheat the entire casserole, allow to come to room temperature, cover with foil, and place in a 350°F oven for about 15 minutes or until warmed through.
Make-Ahead: You can make the entire casserole, except for the Ritz cracker topping, 1 day in advance. Cover and refrigerate; when ready to bake, remove from the refrigerator and bring to room temperature, top with the Ritz cracker topping, and bake.
Freezing Instructions: Prepare casserole in a freezer-safe and oven-safe container. Do not add the Ritz cracker topping. When ready to bake, thaw in the refrigerator overnight. Before baking, bring to room temperature, add the topping, and bake as directed.