def make_variant(cls, converters, re_opts=None, compiled=False, strict=True):
        assert converters, "REQUIRE: Non-empty list."
        if len(converters) == 1:
            return converters[0]
        if re_opts is None:
            re_opts = cls.default_re_opts
        pattern = r")|(".join([tc.pattern for tc in converters])
        pattern = r"("+ pattern + ")"
        group_count = len(converters)
        for converter in converters:
            group_count += pattern_group_count(converter.pattern)
        if compiled:
            convert_variant = cls.__create_convert_variant_compiled(converters,
                                                                re_opts, strict)
        else:
            convert_variant = cls.__create_convert_variant(re_opts, strict)
        convert_variant.pattern = pattern
        convert_variant.converters = tuple(converters)
        convert_variant.regex_group_count = group_count
        return convert_variant