Cook pasta according to package directions.
In a large saucepan, melt butter. Whisk in flour to make a roux and cook for 1 minute.
Whisk the milk into the roux a little at a time, making sure to work out all the clumps so you have a smooth sauce. Cook over medium heat until milk has thickened, about 8 minutes. Add pepper flakes, basil, oregano, salt, pepper and mustard.
Remove sauce from heat. Stir in cheddar cheese with a spoon or spatula until the cheese is melted.
In a large skillet over medium heat, cook bacon until crispy, 5 to 8 minutes. Remove bacon from the pan but reserve the bacon fat.
Add garlic and onions and sauté until they’re golden brown in color. Add tomato and spinach into the mix with Worcestershire sauce, salt, pepper and paprika.
Mix pasta and cheese sauce. Then, add the spinach sauté.
Transfer to casserole dish and top with Monterey Jack cheese, bacon and breadcrumbs.
Bake at 350°F for 15 to 20 minutes.
Broil for an additional 5 minutes, so the top can crisp up.