'Calls the given visit() function on this cluster and each nested cluster, breadth-first.'

def traverse(self, visit=(lambda cluster: None)):

    visit(self)
    for item in self:
        if isinstance(item, Cluster):
            item.traverse(visit)
