def yaml_tag_constructor(loader, tag, node):
    """convert shorthand intrinsic function to full name
    """
    def _f(loader, tag, node):
        if tag == '!GetAtt':
            return node.value.split('.')
        elif type(node) == yaml.SequenceNode:
            return loader.construct_sequence(node)
        else:
            return node.value

    if tag == '!Ref':
        key = 'Ref'
    else:
        key = 'Fn::{}'.format(tag[1:])

    return {key: _f(loader, tag, node)}
convert shorthand intrinsic function to full name