Melt 2 TBLS butter in a large, nonstick skillet over medium heat.
Add cauliflower, onion, bell pepper and asparagus to the pan.
Cook, stirring occasionally, until the vegetables begin to soften and the onion starts to turn translucent.
Add 2 TBLS water to the skillet and cover with a lid.
Steam the vegetables for 2-3 minutes, or until the water has evaporated.
Take off the lid and stir well.
Add the mushrooms and garlic to the pan. Cook the garlic until it is fragrant, about 30 seconds.
Using a wooden spoon or the tip of your spatula, make four holes in the hash for the eggs. Be sure you can see the bottom of the skillet in each hole so the egg can cook completley.
Crack an egg into each hole. You can crack each egg into a small bowl and then pour it in to the holes too. I do this sometimes so I have better control over where the egg goes and I can be sure there are no shells in it.
Sprinkle each egg with salt and pepper and then cover the pan with the lid again.
Cook until the eggs are done to your liking. I like a runny egg yolk, but not runny whites so I kept the lid on for almost 6 minutes.
When the eggs are done, sprinkle grated cheese over the top and serve warm.