Heat a large skillet over medium heat. Add olive oil and sliced onions, cooking until they are caramelized, about 10-15 minutes. Stir in Worcestershire sauce and set aside.
In a bowl, combine ground beef, garlic powder, onion powder, salt, and black pepper. Form the mixture into 4 equal patties.
In the same skillet, cook the patties over medium-high heat for about 4-5 minutes on each side, or until they reach your desired doneness. During the last minute of cooking, place a slice of Swiss cheese on each patty to melt.
While the patties are cooking, spread butter on one side of each slice of rye bread. Once the patties are done, remove them from the skillet and set aside.
In the same skillet, place two slices of rye bread, buttered side down. Top each with a patty, some caramelized onions, and another slice of rye bread, buttered side up. Cook until golden brown, about 3-4 minutes per side, pressing down gently with a spatula.
Remove from the skillet, slice in half, and serve hot.