async def METHOD_NAME(self, args=None):
    parser = build_parser()
    options = parser.parse_args(args if args is not None else sys.argv[1:])
    self.options = options
    if not options.forward and not options.reverse:
        raise parser.error("At least one of --forward and --reverse must be given.")
    self.outgoing_context = await aiocoap.Context.create_client_context()
    if options.forward:
        proxy = ForwardProxyWithPooledObservations(self.outgoing_context)
    else:
        proxy = ProxyWithPooledObservations(self.outgoing_context)
    for kind, data in options.r or ():
        if kind in ('--namebased', '--subdomainbased'):
            try:
                name, dest = data.split(':', 1)
            except Exception:
                raise parser.error("%s needs NAME:DEST as arguments" % kind)
            dest, rewrite_uri_host, use_as_proxy = destsplit(dest)
            if rewrite_uri_host and kind == '--subdomainbased':
                parser.error("The flag '!' makes no sense for subdomain based redirection as the subdomain data would be lost")
            r = (NameBasedVirtualHost if kind == '--namebased' else SubdomainVirtualHost)(name, dest, rewrite_uri_host, use_as_proxy)
        elif kind == '--pathbased':
            try:
                path, dest = data.split(':', 1)
            except Exception:
                raise parser.error("--pathbased needs PATH:DEST as arguments")
            r = SubresourceVirtualHost(path.split('/'), dest)
        elif kind == '--unconditional':
            dest, rewrite_uri_host, use_as_proxy = destsplit(data)
            if rewrite_uri_host:
                parser.error("The flag '!' makes no sense for unconditional redirection as the host name data would be lost")
            r = UnconditionalRedirector(dest, use_as_proxy)
        else:
            raise AssertionError('Unknown redirectory kind')
        proxy.add_redirector(r)
    self.proxy_context = await server_context_from_arguments(proxy, options)
    if options.register is not False:
        from aiocoap.resourcedirectory.client.register import Registerer
        params = {}
        if options.register_as:
            ep, _, d = options.register_as.partition('.')
            params['ep'] = ep
            if d:
                params['d'] = d
        if options.register_proxy:
            # FIXME: Check this in discovery
            params['proxy'] = 'on'
        # FIXME: Construct this from settings (path-based), and forward results
        proxy.get_resources_as_linkheader = lambda: ""
        self.registerer = Registerer(self.proxy_context, rd=options.register, lt=60,
                registration_parameters=params)