pre heat oven to 350. cook macaroni to package directions. drain rinse, and drain again. transfer to a warm bowl. seperate the eggs. in a small bowl lightly beat the yolks; set aside for the sauce. stir the egg whites, feta and 1/4 cup milk into the macaroni. set aside.
meanwhile, to prepare the meat filling, in a large skillet, cook the lamb and onion over a medium-high heat until meat is browned. drain off fat. stir in the tomatoes, oregano,cinnamon and 1/8 tsp salt and 1/8 tsp pepper. bring to a boil, lower heat and simmer, covered for 5 minutes. remove from heat. stir in 2/3 cup of parmesan. layer half of the macaroni mixture in a lightly greased 8x8x2 baking dish. top with meat filling, then with the remaining macaroni mixture.
to prepare the sauce, in a medium saucepan, whisk together the 1-1/2 cups milk, the flour, the1/4 tsp. salt, the 1/4 tsp pepper. cook over a medium heat whisking constantly, for 8 minutes or until it is thickened. slowly pour about 1 cup of sauce into the lightly beaten egg yolks. then return this mixture to saucepan. cook stirring constantly for 3 minutes; do not boil. stir in parmesan cheese.
pour the sauce over the macaroni. bake for 30-35 minutes. let stand 10 minutes before serving.