def METHOD_NAME(self, criterion, tree) -> list[BranchFactory]:
    """Find possible split candidates.
    Parameters
    ----------
    criterion
        The splitting criterion to be used.
    tree
        Decision tree.
    Returns
    -------
    Split candidates.
    """
    best_suggestions = []
    pre_split_dist = self.stats
    if tree.merit_preprune:
        # Add null split as an option
        null_split = BranchFactory()
        best_suggestions.append(null_split)
    for att_id, splitter in self.splitters.items():
        best_suggestion = splitter.best_evaluated_split_suggestion(
            criterion, pre_split_dist, att_id, tree.binary_split
        )
        best_suggestions.append(best_suggestion)
    return best_suggestions