- 5 tablespoons unsalted butter
- 3 tablespoons all-purpose flour
- 2 cups whole milk
- 1/4 teaspoon salt
- 1/8 teaspoon black pepper
- 1/8 teaspoon freshly grated nutmeg
- 3 1/2 ounces coarsely grated Gruyère cheese (1 1/3 cups)
- 8 slices firm white sandwich bread
- 4 teaspoons Dijon mustard
- 1/2 pound thinly sliced cooked ham (preferably Black Forest)
- 4 large eggs
Melt 3 tablespoons butter in a 1- to 1 1/2-quart heavy saucepan over moderately low heat, then whisk in flour and cook roux, whisking, 3 minutes. Whisk in milk and bring to a boil, whisking constantly. Reduce heat and simmer, whisking occasionally, 5 minutes. Whisk in salt, pepper, nutmeg, and 1/3 cup cheese until cheese is melted. Remove from heat and cover surface directly with a sheet of wax paper.
Spread 1 1/2 tablespoons sauce evenly over each of 4 slices of bread, then sprinkle evenly with remaining cheese (1/4 cup per slice). Spread mustard evenly on remaining 4 bread slices and top with ham, dividing it evenly, then invert onto cheese-topped bread to form sandwiches.
Lightly oil a 15- by 10-inch shallow baking pan.
Melt 1 tablespoon butter in a 12-inch nonstick skillet over moderately low heat, then cook sandwiches, turning over once, until golden, 3 to 4 minutes total. Remove from heat and transfer sandwiches to baking pan, then wipe out skillet with paper towels.
Top each sandwich with 1/3 cup sauce, spreading evenly. Broil sandwiches 4 to 5 inches from heat until sauce is bubbling and golden in spots, 2 to 3 minutes. Turn off broiler and transfer pan to lower third of oven to keep sandwiches warm.
Heat remaining tablespoon butter in nonstick skillet over moderate heat until foam subsides, then crack eggs into skillet and season with salt and pepper. Fry eggs, covered, until whites are just set and yolks are still runny, about 3 minutes. Top each sandwich with a fried egg and serve immediately.
Side Note: The egg yolks in this recipe should not be fully cooked, which may be of concern if salmonella is a problem in your area...or you do not care if your food tastes good. You can use pasteurized eggs (in the shell) or cook eggs until yolks are set.