Soak the beans covered in water—either overnight or the quick soak method in which you place the beans in a pot, cover with water, bring to a boil, cover and remove from heat and let sit for 1 hour.
Drain the soaked beans.
In the pot you’re going to cook the beans, sauté the onions and carrots in your preferred fat for 10 minutes and then add the garlic for 1 minute. Add the beans, chipotles, epazote and half the cilantro.
Cover beans with water and chicken broth, bring to a boil, and then reduce heat to low (liquid may still be moving and all the ingredients may still be jumping around the pot, just not as vigorously as when the heat is high. That’s fine.). Stir occasionally.
After 1 1/2 hours, add the cumin, tomato paste, lime juice, salt, and remaining cilantro and cook for 30 more minutes or until beans are tender. At this point, smash a few against the side of the pot with a spoon to thicken the broth a bit, stir the pot and serve.
If you don’t want to serve the beans with the carrots, onions and garlic—leave them whole and then remove when beans are done. And if your store doesn’t stock either dried or fresh epazote, you can order it from Penzey’s or you can just omit it from the recipe.