Combine ingredients in a large plastic bag. Refrigerate and marinate at least 24 hours and up to a week. To roast, heat oven to 375. Remove onions and shallots from marinade, place in roasting pan and sprinkle with olive oil. Roast 30-40 minutes until nicely brown and crisp-tender. Serve with roasted or grilled meat or other roasted vegetables. Discard or roast garlic; remaining marinade can be used in salad dressing, or re-used as marinade.