Crush the whole dried spices in a mortar and pestle, then combine with the paprika, crushed garlic, sugar and chipotle chili.
Preheat the oven to 180 degrees celcius.
Place the lamb in a baking dish and sprinkle with salt, to taste.
Rub the marinade into the lamb shoulder. Roast for 30 minutes then add the apple juice and cover with foil.
Turn down the heat to 160 degrees celcius and continue to cook for 2 hours or until the lamb is beginning to fall off the bone. Cooking time may vary depending on size of the shoulder.
Remove the lamb from the oven and pour off any juices into a pot. Add the BBQ sauce ingredients to the juices and bring to the boil. Turn down and simmer for 10 minutes or until thickened slightly.
Combine the tomato, diced onion and chopped coriander and season with salt and pepper.
To serve, pull the lamb off the bone and mix with the BBQ sauce. Pile the lamb onto the bottom bun. Top with pico de gallo, a good squeeze of lime and a little mayo if desired.