def METHOD_NAME(mdg, method, data_key=None, coupler=None):
    """Setup a standard assembler for the flow problem for a given grid bucket.
    The assembler will be set up with primary variable name 'pressure' on the
    GridBucket nodes, and mortar_flux for the mortar variables.
    Parameters:
        mdg: GridBucket.
        method (EllipticDiscretization).
        data_key (str, optional): Keyword used to identify data dictionary for
            node and edge discretization.
        Coupler (EllipticInterfaceLaw): Defaults to RobinCoulping.
    Returns:
        Assembler, ready to discretize and assemble problem.
    """
    if data_key is None:
        data_key = "flow"
    if coupler is None:
        coupler = pp.RobinCoupling(data_key, method)
    if isinstance(method, pp.MVEM) or isinstance(method, pp.RT0):
        mixed_form = True
    else:
        mixed_form = False
    for _, data in mdg.subdomains(return_data=True):
        if mixed_form:
            data[pp.PRIMARY_VARIABLES] = {"pressure": {"cells": 1, "faces": 1}}
        else:
            data[pp.PRIMARY_VARIABLES] = {"pressure": {"cells": 1}}
        data[pp.DISCRETIZATION] = {"pressure": {"diffusive": method}}
    for intf, data in mdg.interfaces(return_data=True):
        g2, g1 = mdg.interface_to_subdomain_pair(intf)
        data[pp.PRIMARY_VARIABLES] = {"mortar_flux": {"cells": 1}}
        data[pp.COUPLING_DISCRETIZATION] = {
            "lambda": {
                g1: ("pressure", "diffusive"),
                g2: ("pressure", "diffusive"),
                intf: ("mortar_flux", coupler),
            }
        }
        data[pp.DISCRETIZATION_MATRICES] = {"flow": {}}
    assembler = pp.Assembler(mdg)
    return assembler