def METHOD_NAME(self, key: str, val: dict) -> dict:
    """Take matched input dict and create a `block` hook to parse."""
    # Remove the merge which will be inserted into the parsed block hook.
    merge = self.merge if 'merge' not in val else val['merge']
    if merge:
        # Do this because arrows can stack up and mess up merge
        self.key_path = self.key_path[:-1]
        # We now don't want the hook to be merged
        self.merge = False
    output = {
        key[-2:]: 'block',
        'merge': merge,
        'items': {},
    }
    # Have a collection of fields that are part of the base.
    aliases = [v.alias for _, v in BaseHook.__fields__.items()] + ['->', '_>']
    for k, v in val.items():
        if k not in aliases:
            # Set the keys under the `items` key per the block hook's input
            output['items'].update({k: v})
        else:
            output.update({k: v})
    return output