def pivot(df, index=None, columns=None, values=None):
    """ Alternative pivot which supports multiple columns for index/columns """
    if index:
        df = df.set_index(index)
    if columns:
        df = df.set_index(columns, append=True).unstack(columns)
    if values:
        df = df[values]
    return df
