def _explore_alternation(explore, g, node):
    """
    This node accepts either the left or the right child node. Meaning that
    all edges connected to this node are connected to both the left and the
    right node.
    """
    explore.add(node.left)
    explore.add(node.right)
    g.add_node(node.left)
    g.add_node(node.right)
    for p in g.predecessors(node):
        data = g.get_edge_data(p, node, default={})
        g.add_edge(p, node.left, **data)
        g.add_edge(p, node.right, **data)
    for s in g.successors(node):
        data = g.get_edge_data(node, s, default={})
        g.add_edge(node.left, s, **data)
        g.add_edge(node.right, s, **data)
    g.remove_node(node)
