Imports Feature `name`, and all its dependencies, from
    Registry `src` to Registry `dest`.

    :param Registry dest: Destination Registry
    :param Registry src: Source Registry
    :param str name: Name of Feature to import
    :param str api: Prefer to import dependencies with api name `api`,
                    or None to import dependencies with no API name.
    :param str profile: Import dependencies with profile name
                        `profile`, or None to import all dependencies.
    :param filter_symbol: Optional symbol filter callable
    :type filter_symbol: Callable with signature
                         ``(symbol_type:str, symbol_name:str) -> bool``

def import_feature(dest, src, name, api=None, profile=None,
                   filter_symbol=None):
    """Imports Feature `name`, and all its dependencies, from
    Registry `src` to Registry `dest`.

    :param Registry dest: Destination Registry
    :param Registry src: Source Registry
    :param str name: Name of Feature to import
    :param str api: Prefer to import dependencies with api name `api`,
                    or None to import dependencies with no API name.
    :param str profile: Import dependencies with profile name
                        `profile`, or None to import all dependencies.
    :param filter_symbol: Optional symbol filter callable
    :type filter_symbol: Callable with signature
                         ``(symbol_type:str, symbol_name:str) -> bool``
    """
    if filter_symbol is None:
        filter_symbol = _default_filter_symbol
    ft = src.features[name] if isinstance(name, str) else name
    # Gather symbols to remove from Feature
    remove_symbols = set()
    for x in src.get_removes(api, profile):
        remove_symbols.update(x.as_symbols())

    def my_filter_symbol(t, name):
        return False if (t, name) in remove_symbols else filter_symbol(t, name)

    for req in ft.get_requires(profile):
        for x in req.types:
            if not my_filter_symbol('type', x):
                continue
            import_type(dest, src, x, api, filter_symbol)
        for x in req.enums:
            if not my_filter_symbol('enum', x):
                continue
            import_enum(dest, src, x)
        for x in req.commands:
            if not my_filter_symbol('command', x):
                continue
            import_command(dest, src, x, api, filter_symbol)
    dest.features[name] = ft