In a large pan, add olive oil and bring to medium heat. Add the onions and mushrooms, and stir until coated. Saute for 3 minutes. Add white wine and Worcestershire. Stir and saute for 8 minutes until the wine is reduced and the onions and mushrooms are caramelized. Season with salt and pepper.
Lay out the slice of bread, and put a layer of cheese. Then top with mushrooms and onions. Add another layer of cheese. Top with another slice of bread.
Add 1 tablespoon of butter to the pan and melt over medium heat. Place the sandwich on the pan and fry until golden brown, about 3 minutes. Remove and add 1 more tablespoon of butter. Flip the sandwich and fry for 3 more minutes.
Notes
Always buy blocks of cheese because they are easier to store and are a little more versatile than a bag.
If you're looking for a sandwich with a nice cheese pull you can't just use swiss. You need something like cheddar or gruyere for the cheesy action.
Take your time when caramelizing the mushrooms and onions. When they start looking sticky they're ready.