Add olive oil or butter, and chopped onions into a large skillet over high heat. Once onions start to sizzle, turn heat to medium, season with salt and pepper. Cook on medium for about 35-45 minutes, or until golden brown. Stir occasionally. Cool.
In a medium bowl, combine the rest of the dip ingredients. Stir in cooled caramelized onions. Refrigerate for at least 4 hours, but best overnight. The dip will taste much different after it chills for a few hours. I do not recommend serving right away.
Stir and taste for seasoning just before serving, add additional salt and pepper if desired. Serve with chips, veggies, or pretzels!
This dip is better the longer it sits. I highly recommend making it the night before serving, it's worth it!