'Attempts to match a given header to a field of the
imported model.
:param str header: header name from the CSV file
:param fields:
:param dict options:
:returns: an empty list if the header couldn\'t be matched, or
all the fields to traverse
:rtype: list(Field)'

def _match_header(self, header, fields, options):

    string_match = None
    for field in fields:
        if (header.lower() == field['name'].lower()):
            return [field]
        if (header.lower() == field['string'].lower()):
            string_match = field
    if string_match:
        return [string_match]
    if ('/' not in header):
        return []
    traversal = []
    subfields = fields
    for section in header.split('/'):
        match = self._match_header(section.strip(), subfields, options)
        if (not match):
            return []
        field = match[0]
        subfields = field['fields']
        traversal.append(field)
    return traversal
