In a large boiling pot of water, cook the beans until crisp-tender and bright green for 3-4 minutes.
To blanch the beans, drain and rinse under cold water, pouring immediately into a large bowl of ice water to stop the cooking process.
Drain well. Pat dry with paper towels. You can prepare ahead of time by wrapping the beans in paper towels; enclosed in Ziploc bag and refrigerate.
Cook bacon in heavy large skillet over medium heat until crisp. Transfer to paper towels and drain.
Discard all but 3 tablespoons bacon fat in skillet and add butter, melting over medium heat. Add the shallots and onion and sauté until caramelized and golden, about 4-5 minutes. Turn the heat off and place a lid on top.
Right before serving, add the beans and bacon with 1/2 cup of water, placing the lid back on. Sauté until heated through, about 5 minutes. Season with salt and pepper to taste; serve!