def add_suffix(event, fields, suffix, separator='_'):
    """ Adds a suffix to a field or list of fields

    :param event: A dict with the entire event
    :param field_or_field_list: A single field or list of fields for which to add a suffix
    :param suffix: The suffix to add to the fields
    :param separator: The character to place between the name and the suffix
    :return: An altered event with the altered field names

    Examples:

    .. code-block:: python

        # Example #1
        event = {'a_field': 'a_value'}
        event = add_suffix(event, fields='a_field', suffix='an_ending')
        event = {'a_field_an_ending': 'a_value'}

        # Example #2
        event = {'a_field': 'a_value'}
        event = add_suffix(event, fields='a_field', suffix='an_ending', separator='---')
        event = {'a_field---an_ending': 'a_value'}

        # Example #3
        event = {'a_field': 'a_value',
                'another_field': 'another_value'}
        event = add_suffix(event, fields=['a_field', 'another_field'], suffix='an_ending')
        event = {'a_field_an_ending': 'a_value',
                'another_field_an_ending': 'another_value'}

    """

    if type(fields) is not list:
        fields = [fields]

    for k, v in event.items():
        if k in fields:
            event[k + separator + suffix] = event[k]
            del event[k]

    return event