01 - Cook the elbow macaroni in salted boiling water according to package instructions until al dente. Drain thoroughly and set aside.
02 - In a medium saucepan, melt the unsalted butter over medium heat. Whisk in the all-purpose flour and cook for 1 minute, stirring constantly.
03 - Gradually whisk in the whole milk, continuing to cook and stir until the mixture slightly thickens, approximately 2–3 minutes.
04 - Add the shredded cheddar and mozzarella cheeses to the saucepan. Stir until fully melted and the sauce is smooth. Season with salt, black pepper, and the pinch of cayenne pepper, if using.
05 - Gently fold the drained, cooked macaroni into the cheese sauce, ensuring it is evenly coated. Allow the mac and cheese mixture to cool for 10–15 minutes.
06 - Lay one spring roll wrapper flat on a clean surface with a corner pointing towards you. Spoon approximately 2 heaped tablespoons of the cooled mac and cheese filling near the bottom corner.
07 - Fold the bottom corner of the wrapper up and over the filling. Fold in the left and right sides towards the center, then roll the wrapper up tightly towards the top corner. Brush the top corner with the beaten egg to seal the roll securely.
08 - Continue the assembly process with the remaining spring roll wrappers and mac and cheese filling.
09 - Heat sufficient vegetable oil in a deep fryer or large pot to 350°F (180°C). Carefully fry the assembled spring rolls in small batches for 3–4 minutes, turning them occasionally, until they are golden brown and deliciously crisp.
10 - Using a slotted spoon or tongs, remove the fried spring rolls from the oil and drain them on paper towels. Serve immediately while hot.