def plot_eeg_erp(all_epochs, conditions=None, times=None, include="all", exclude=None, hemisphere="both", central=True, name=None, colors=None, gfp=False, ci=0.95, ci_alpha=0.333, invert_y=False, linewidth=1, linestyle="-", filter_hfreq=None):
    """
    DOCS INCOMPLETE :(
    """
    # Preserve original
    all_epochs_current = all_epochs.copy()

    # Filter using Savitzky-Golay polynomial method
    if (filter_hfreq is not None) and (isinstance(filter_hfreq, int)):
        for participant, epochs in all_epochs_current.items():
            all_epochs_current[participant] = epochs.savgol_filter(filter_hfreq, copy=True)

    # Crop
    if isinstance(times, list) and len(times) == 2:
        for participant, epochs in all_epochs_current.items():
            all_epochs_current[participant] = epochs.copy().crop(times[0], times[1])


    # Transform to evokeds
    all_evokeds = eeg_to_all_evokeds(all_epochs_current, conditions=conditions)

    data = {}
    for participant, epochs in all_evokeds.items():
        for condition, epoch in epochs.items():
            data[condition] = []
    for participant, epochs in all_evokeds.items():
        for condition, epoch in epochs.items():
            data[condition].append(epoch)


    conditions = list(data.keys())

    # Line styles
    if isinstance(linestyle, str):
        linestyle = [linestyle] * len(conditions)
    elif isinstance(linestyle, list) and len(linestyle) >= len(conditions):
        pass
    elif isinstance(linestyle, dict) and len(linestyle.keys()) >= len(conditions):
        linestyle = [linestyle[cond] for cond in conditions]
    else:
        print("NeuroKit Warning: plot_eeg_erp(): linestyle must be either a str, a list or a dict.")


    # Colors
    if isinstance(colors, str):
        colors = {condition: colors for condition in conditions}
    elif isinstance(colors, list) and len(colors) >= len(conditions):
        colors=  {condition: colors[index] for index, condition in enumerate(conditions)}
    elif isinstance(colors, dict) and len(colors.keys()) >= len(conditions):
        pass
    elif colors is None:
        pass
    else:
        print("NeuroKit Warning: plot_eeg_erp(): colors must be either a str, a list, a dict or None.")


    # Modify styles
    styles = {}
    for index, condition in enumerate(conditions):
        styles[condition] = {"linewidth": linewidth, "linestyle": linestyle[index]}


    # Select electrodes
    picks = mne.pick_types(epoch.info, eeg=True, selection=eeg_select_electrodes(epoch, include=include, exclude=exclude, hemisphere=hemisphere, central=central))

    # Plot
    try:
        plot = mne.viz.plot_compare_evokeds(data, picks=picks, colors=colors, styles=styles, title=name, gfp=gfp, ci=ci, invert_y=invert_y, ci_alpha=ci_alpha)
    except TypeError:
        print("NeuroKit Warning: plot_eeg_erp(): You're using a version of mne that does not support ci_alpha or ci_method parameters. Leaving defaults.")
        plot = mne.viz.plot_compare_evokeds(data, picks=picks, colors=colors, styles=styles, title=name, gfp=gfp, ci=ci, invert_y=invert_y)

    return(plot)
DOCS INCOMPLETE :(