Mesclar listas que compartilham elementos comuns

Minha entrada é uma lista de listas. Alguns deles compartilham elementos comuns, por exemplo.

L = [['a','b','c'],['b','d','e'],['k'],['o','p'],['e','f'],['p','a'],['d','g']]

Preciso mesclar todas as listas, que compartilham um elemento comum, e repita esse procedimento, desde que não haja mais listas com o mesmo item. Pensei em usar operações booleanas e um loop while, mas não consegui encontrar uma boa solução.

O resultado final deve ser:

L = [['a','b','c','d','e','f','g','o','p'],['k']] 

questionAnswers(13)

yourAnswerToTheQuestion