def METHOD_NAME(self, *args, **kwargs):
    candidate_widget_types = [
        key for key in self.registry if self.registry[key](*args, **kwargs)
    ]
    n_matches = len(candidate_widget_types)
    if n_matches == 0:
        if self.default_widget_type is None:
            raise NoMatchError(
                "No types match specified arguments and no default is set."
            )
        else:
            candidate_widget_types = [self.default_widget_type]
    elif n_matches > 1:
        # We'll need to switch from print() to using logging library
        print(candidate_widget_types)  # noqa: T201
        raise MultipleMatchError(
            f"Too many candidate types identified ({n_matches}). "
            "Specify enough keywords to guarantee unique type "
            "identification."
        )
    # Only one is found
    WidgetType = candidate_widget_types[0]
    return WidgetType(*args, **kwargs)