Preheat the oven to 350°F (175°C).
In a large pot, heat olive oil over medium heat.
Add onion and garlic.
Cook until the onion is translucent.
Add the ground beef and lamb to the pot.
Cook meat until browned.
Pour in wine and crushed tomatoes, then add cinnamon.
Simmer for 30 minutes.
While the sauce simmers, melt butter in a saucepan over medium heat.
Stir in flour and cook for 2 minutes.
Slowly add milk and cream, whisking until thick.
Remove from heat and mix in the egg yolk.
Cook pasta according to package instructions.
Drain and place half in a greased 9x13-inch baking dish.
Layer with meat sauce, remaining pasta, and bechamel sauce.
Top with Parmesan cheese.
Bake for 45 minutes.
Let it cool before serving.