def METHOD_NAME(values, topology, vm_base, inventory_hostname):
    """
    This function takes a list of host VMs as parameter 'values' and then return 'inventory_hostname'
    corresponding EOS hostname based on 'topology' structure, 'vm_base' parameters
    """
    if values is None:
        raise errors.AnsibleFilterError('Values is not provided')
    if topology is None:
        raise errors.AnsibleFilterError('topology is not provided')
    if vm_base is None:
        raise errors.AnsibleFilterError('vm_base is not provided')
    if inventory_hostname is None:
        raise errors.AnsibleFilterError('inventory_hostname is not provided')
    if not isinstance(values, list):
        raise errors.AnsibleFilterError('Wrong type for values')
    if not isinstance(topology, dict):
        raise errors.AnsibleFilterError('Wrong type for the topology')
    if not isinstance(vm_base, str) and not isinstance(vm_base, unicode):       # noqa F821
        raise errors.AnsibleFilterError('Wrong type for the vm_base')
    if not isinstance(inventory_hostname, str) and not isinstance(inventory_hostname, unicode):     # noqa F821
        raise errors.AnsibleFilterError('Wrong type for the inventor_hostname')
    if vm_base not in values:
        raise errors.AnsibleFilterError('Current vm_base: %s is not found in vm_list' % vm_base)
    base = values.index(vm_base)
    for hostname, attr in topology.items():
        if base + attr['vm_offset'] >= len(values):
            continue
        if inventory_hostname == values[base + attr['vm_offset']]:
            return hostname
    return "hostname not found"  # This string should not be used as valid hostname