Cook penne according to package directions. Drain, rinse with cold water to eliminate sticking, and set aside.
Heat olive oil in a large sauté pan over medium high heat. Brown lamb in two batches, seasoning with salt and pepper. Set lamb aside and pour off excess grease.
Reduce heat to medium and add onion. Cook until translucent, about 5minutes. Add garlic, rosemary, oregano, and nutmeg. Cook another minute. Add wine and deglaze pan.
Reduce wine to about 1 tablespoon. Stir in tomatoes, including liquid, and lamb. Season with additional salt and pepper. Simmer for about 15 minutes. Stir in Haloumi cheese and cook another 5 minutes.
Heat oven to 400°F.
Heat milk in the microwave on high for 1 1/2 minutes. Melt butter in a sauce pan over low heat. Whisk in flour and cook, stirring constantly, for four minutes.
Slowly pour in hot milk, whisking steadily, and cook until thickened. Slowly whisk in egg yolks. Whisk in kefalotiri (Haloumi or parmegiano) cheese, cooking until melted and thick. Stir in salt and pepper.
Toss pasta with shredded Haloumi or mozzarella cheese. Layer 3/4 of pasta in the bottom of 9 x 13 casserole dish. Layer meat mixture on top of pasta.
Distribute remaining pasta over meat. Pour sauce evenly over pasta. Place casserole in middle of oven and cook for 35 - 45 minutes or until top is a golden brown.