Heat the butter in a large, heavy saucepan, over a medium heat. Add the dry vermicelli. Saute just until golden brown, stirring gently with a wooden spoon. Add the diced onion and cook 2 to 3 minutes. Add the mushrooms, saute until almost dry, then add the tomatoes, epazote, broth, and salt. Heat the sopa to boiling and then simmer.
Cover tightly and bake for 45 minutes. Sprinkle the cheese over the top and continue baking, uncovered, 10 minutes longer.