Place the aubergine pieces in a colander and sprinkle with salt. Set aside for 10 minutes.
Put the lamb, onions, garlic, oregano, mint, bay and cinnamon in a large heavy-based frying pan and cook over a medium heat for 10 minutes, stirring with a wooden spoon to break up the meat.
Stir in the flour, salt and plenty of pepper. Add the wine, tomatoes, tomato purée and bring to a simmer. Cook for 30 minutes, stirring occasionally, until the lamb is tender and the sauce has thickened. Season with salt and pepper to taste. Set aside.
Rinse the aubergine pieces under cold running water and pat dry in a clean tea towel. Heat 3 tablespoons of the oil in a heavy-based frying pan and fry the aubergines for 2–3 minutes on each side, adding more oil when necessary. Remove from the pan and set aside to drain on kitchen paper.
Cook the potatoes in boiling water for 5 mintues, then drain in a colander under running water until cold.
Preheat the oven to 180C/160C Fan/Gas 4.
For the white sauce, melt the butter in a large saucepan and stir in the flour. Cook for a few seconds, then gradually stir in the milk. Add half the Parmesan and the grated nutmeg. Simmer the sauce gently for 4–5 minutes, stirring regularly. Season to taste with salt and pepper.
Remove the saucepan from the heat and quickly stir in the beaten egg. Cover the surface of the sauce with cling film to prevent a skin forming.
Spoon one third of the meat sauce into a large, shallow ovenproof dish. Cover with a layer of potatoes and a layer of aubergines. Repeat the layers twice more, finishing with the aubergines. Pour over the white sauce, making sure it covers in a thick, even layer. Sprinkle with the remaining Parmesan. Bake for 45 minutes, or until deep golden-brown and bubbling.