Heat the oil in a large heavy-based pan, add the onion and fry gently for about 10 minutes until soft.
Stir in the meat and cook until evenly browned stirring from time to time to break up the meat.
Add the tomatoes, cinnamon, oregano and seasoning. Bring to the boil, cover and cook for about 20 minutes.
Add the tomatoes, cinnamon, oregano and seasoning. Bring to the boil, cover and cook for about 20 minutes
Meanwhile brush the aubergines with oil and grill until softened and golden brown on both sides. Drain on kitchen paper
Melt the butter in a pan stir in the flour and cook, stirring, for 1 minute. Remove from the heat and gradually whisk in the milk. Bring to the boil, stirring and cook, stirring for 3 - 4 minutes, until thickened and smooth. Allow to cool slightly, then beat in half of the cheese and the egg yolk: season.
Arrange half of the aubergines over the base of a 2.8 litre (5 pint) shallow ovenproof dish. Spread the meat mixture on top and cover with the remaining aubergines. Spoon the sauce over the top and sprinkle with the breadcrumbs and remaining cheese.
Bake in the oven at 180C (350F) Mark 4 for about 45 minutes until golden. Serve accompanied by a crisp salad.