def _register(subject, session, scan, in_files, opts, reference=1, mask=None):
    """
    A facade for the :meth:`qipipe.pipeline.registration.register
    method.

    .. Note:: The *reference* and *mask* parameters are
      registration options, but can't be included in the *opts*
      parameter, since they are potential upstream workflow node
      connection points. Since a mock registration technique does
      not connect these inputs, theyt have a default value in the
      method signature as well.

    .. Note:: contrary to Python convention, the *opts* method
      parameter is a required dictionary rather than a keyword
      double-splat argument (i.e., ``**opts``). The Nipype
      ``Function`` interface does not support double-splat
      arguments.

    :param subject: the subject name
    :param session: the session name
    :param scan: the scan number
    :param in_files: the input session scan 3D NIfTI images
    :param opts: the :meth:`qipipe.pipeline.registration.run`
        keyword options
    :param reference: the reference volume number
    :param mask: the mask file, required unless the model
        technique is ``Mock``
    :return: the :meth:`qipipe.pipeline.registration.run`
        output time series
    """
    from qipipe.pipeline import registration
    from nipype.interfaces.traits_extension import isdefined
    if not isdefined(mask):
        mask = None
    return registration.run(subject, session, scan, in_files, reference=
        reference, mask=mask, **opts)
