- 2 medium onions, finely chopped
- 2 tablespoons olive oil
- 2 large garlic cloves, finely chopped
- 2 pounds ground lamb
- 1 (28-ounces) can whole tomatoes in juice
- 1 (15-ounces) can whole tomatoes in juice
- 4 thyme sprigs
- 1 1/4 teaspoons ground cinnamon
- 1 1/4 teaspoons ground allspice
- 1/2 teaspoon grated nutmeg
- 1/4 teaspoon ground cloves
- 7 tablespoons unsalted butter
- 6 tablespoons all-purpose flour
- 7 cups whole milk
- 3/4 teaspoon grated nutmeg
- 1 cup grated Parmigiano-Reggiano or kefalotyri cheese (2 ounces)
- 5 large egg yolks
- 2 pounds ziti
- 1 3/4 cups coarse fresh bread crumbs (from 4 slices firm white sandwich bread)
- 1/4 cup grated Parmigiano-Reggiano or kefalotyri cheese
- Cook onions in oil in a 12-inch heavy skillet over medium heat, stirring frequently, until softened, about 7 minutes. Add garlic and cook, stirring, 1 minute. Increase heat to high, then stir in lamb and cook, stirring occasionally and breaking up any lumps with a fork, until meat starts to brown, about 15 minutes.
- Meanwhile, drain both cans of tomatoes, reserving juice, and chop.
- Pour off excess fat from skillet, then stir in tomatoes with their juice, thyme, spices, and 1 1/2 teaspoons salt. Simmer over low heat, partially covered, until some liquid has evaporated but sauce is still moist, about 40 minutes. Discard thyme.
- Melt butter in a heavy medium pot over medium heat. Whisk in flour, then cook roux, whisking frequently, until pale golden, about 6 minutes.
- Meanwhile, heat milk in a heavy medium saucepan until just about to boil. Add milk to roux in a stream, whisking constantly until very smooth. Bring sauce to a boil over medium heat, whisking, then cook, whisking, 1 minute. Remove from heat and stir in nutmeg, cheese, and 1 tablespoon salt.
- Lightly beat yolks in a bowl. Gradually whisk in 2 cups béchamel, then whisk yolk mixture into remaining béchamel in saucepan. Cover with a round of buttered wax paper (buttered side down).
- Preheat oven to 375°F with rack in middle. Cook ziti in a pasta pot of boiling salted water (3 tablespoons salt for 6 quarts water) until al dente.
- Drain pasta, then transfer to a large bowl and stir in 1 cup béchamel.
- Arrange one third of pasta lengthwise in 1 layer in a large (17-by 11-inch) baking pan (about 2 inches deep).
- Add half of meat sauce (about 3 cups) to baking pan, spreading evenly over pasta.
- Make another layer of pasta and top with remaining meat sauce, then arrange remaining pasta on top.
- Spread remaining béchamel (about 6 cups) evenly over top layer of pasta.
- Stir together bread crumbs and cheese and sprinkle evenly over top of pastitsio.
- Bake until crumbs are golden brown and sauce is bubbling, about 45 minutes.