-
In a medium pot over medium heat, melt butter. Add shallot and cook, stirring occasionally, until softened and translucent, 6 to 8 minutes. Whisk in flour to form a thick, bubbling paste, then whisk in milk. Increase heat to medium-high and bring to a boil, then reduce heat to medium low and simmer, stirring occasionally, until thickened, 1 to 2 minutes.
-
Remove the pot from the heat and whisk in 1 cup cheese just until melted; season with salt and pepper. Fold in spinach and 1 cup ham. Let cool.
-
Line 2 baking sheet with parchment paper. On a lightly floured sugar, roll 1 sheet of puff pastry to a 15 x 10 rectangle. Using a sharp knife, cut into 6 equal squares, each about 5x5. Transfer the squares to one of the prepared sheets. Repeat with remaining sheet of puff pastry.
-
Dollop 3 tbsp of cooled filling into center of each square. Press 5 to 6 pieces of remaining ham into top of each piece. Sprinkle with remaining ½ cup cheese. Fold corners of each square to meet in the center. Refrigerate pastries until chilled, 15 to 30 minutes.
-
Arrange racks in upper and lower thirds of oven. Preheat oven to 400 F. In a small bowl, whisk egg, water and a pinch of salt. Brush egg wash over chilled pastries.
-
Bake puffs, rotating sheets top to bottom after 10 minutes, until pastry is golden brown on top and bottom, 15 to 20 minutes. Top with more pepper and serve warm.