def METHOD_NAME(tree):
    pairs = []
    def traverse_tree(tree, root):
        if len(tree["replies"]) == 0:
            return
        if tree["role"] == "prompter" and len(tree["replies"]) > 1:
            available_reply = [{attr: r[attr] for attr in attributes if attr in r} for r in tree["replies"]]
            pairs.append((root, available_reply))
        for reply in tree["replies"]:
            new_root = deepcopy(root)
            new_root.append({attr: reply[attr] for attr in attributes if attr in reply})
            traverse_tree(reply, new_root)
    init_root = [{attr: tree[attr] for attr in attributes if attr in tree}]
    traverse_tree(tree, init_root)
    return pairs