def METHOD_NAME(sequence, fields, strain_key="strain", separator="|", prettify_fields=None, fix_dates_format=None):
    """Parse a single sequence record into a sequence record and associated metadata.
    Parameters
    ----------
    sequence : Bio.SeqRecord.SeqRecord
        a BioPython sequence record to parse with metadata stored in its description field.
    fields : list or tuple
        a list of names for fields expected in the given record's description.
    strain_key : str
        name of the field to use as the given sequence's unique id
    separator : str
        delimiter to split record description by.
    prettify_fields : list or tuple
        a list of field names for which the values in those fields should be prettified.
    fix_dates_format : str
        parse "date" field into the requested canonical format ("dayfirst" or "monthfirst").
    Returns
    -------
    Bio.SeqRecord.SeqRecord :
        a BioPython sequence record with the given sequence's name as the record
        id and all other metadata stripped.
    dict :
        metadata associated with the given record indexed by the given field names.
    """
    sequence_fields = map(str.strip, sequence.description.split(separator))
    metadata = dict(zip(fields, sequence_fields))
    tmp_name = metadata[strain_key].translate(forbidden_characters)
    sequence.name = sequence.id = tmp_name
    sequence.description = ''
    if prettify_fields:
        for field in metadata.keys() & prettify_fields:
            if isinstance(metadata[field], str):
                metadata[field] = prettify(metadata[field], camelCase=(not field.startswith('author')),
                                            etal='lower' if field.startswith('author') else None)
    # parse dates and convert to a canonical format
    if fix_dates_format and 'date' in metadata:
        metadata['date'] = fix_dates(
            metadata['date'],
            dayfirst=fix_dates_format=='dayfirst'
        )
    metadata["strain"] = sequence.id
    return sequence, metadata