def add_duplicate_fields(event, field_name, suffix_or_suffix_list, keep_original=False):
    """ Add duplicate values of a field with a suffix

    :param event: A dictionary
    :param field_name: The name of the field to duplicate
    :param suffix_or_suffix_list: A single or list of suffixes to add to the field_name in the duplicates
    :param keep_original: True to keep the original field also
    :return: An altered dictionary

    Examples:

    .. code-block:: python

        # Example #1
        event = {'a_field': 'a_value'}
        event = add_duplicate_fields(event, field_name='a_field', suffix_or_suffix_list='my_suffix', keep_original=False)
        event = {'a_field_my_suffix': 'a_value'}

        # Example #2
        event = {'a_field': 'a_value'}
        event = add_duplicate_fields(event, field_name='a_field', suffix_or_suffix_list='my_suffix', keep_original=True)
        event = {'a_field': 'a_value',
                'a_field_my_suffix': 'a_value'}

        # Example #3
        event = {'a_field': 'a_value'}
        event = add_duplicate_fields(event, field_name='a_field', suffix_or_suffix_list=['my_suffix','my_second_suffix'], keep_original=False)
        event = {'a_field_my_second_suffix': 'a_value',
                'a_field_my_suffix': 'a_value'}

    """

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

    if field_name in event:
        for suffix in suffix_or_suffix_list:
            event[field_name + '_' + suffix] = event[field_name]

    if not keep_original:
        del event[field_name]

    return event