In a large bowl, using clean hands, mix ground beef, onions, bread crumbs, egg, Worcestershire sauce, parsley, pepper, garlic salt and red pepper flakes together,
Divide mixture into 6 equal parts and form 6 oblong patties.
Using a large cast iron skillet over medium heat or an electric skillet at 350°, melt butter and place prepared patties into skillet.
Cook patties for 5 minutes on each side then remove and place on a plate.
Reduce heat to medium or 325°, add onions and garlic to pan with the drippings.
Cook for 3-4 minutes, stirring and scraping the brown bits together.
Add mushrooms and continue cooking for a couple more minutes.
Sprinkle flour over mushrooms, onions and garlic. Stir and cook for an additional 2 minutes.
Next, add beef broth, Worcestershire sauce, salt and pepper and stir until combined.
Place patties back into pan, cover with gravy mixture and cook for 25-35 minutes, stirring occasionally.
Gravy will thicken up as it cools. If gravy is not thick enough, mix corn starch with water, add to pan and stir for a few minutes to thicken.
Slice each roll in half, add two tablespoons or more of gravy on the bottom slice of the roll, add Salisbury steak patty, top with Swiss cheese, then add a few more tablespoons of mushroom gravy over the top.
Place top slice of roll on top and enjoy.