<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set(self, **kargs):
 """ Reset default keyword parameters. Assigns new default values from dictionary ``kargs`` to the fitter's keyword parameters. Keywords for the underlying :mod:`lsqfit` fitters can also be included (or grouped together in dictionary ``fitterargs``). Returns tuple ``(kargs, oldkargs)`` where ``kargs`` is a dictionary containing all :class:`lsqfit.MultiFitter` keywords after they have been updated, and ``oldkargs`` contains the original values for these keywords. Use ``fitter.set(**oldkargs)`` to restore the original values. """

        kwords = set([
            'mopt', 'fast', 'ratio', 'wavg_kargs', 'wavg_all',
            'fitterargs', 'fitname',
            ])
        kargs = dict(kargs)
        oldkargs = {}
        fargs = {}
        # changed
        for k in list(kargs.keys()):  # list() needed since changing kargs
            if k in kwords:
                oldkargs[k] = getattr(self, k)
                setattr(self, k, kargs[k])
                kwords.remove(k)
            else:
                fargs[k] = kargs[k]
                del kargs[k]
        # unchanged
        for k in kwords:
            kargs[k] = getattr(self, k)
        # manage fitterargs
        if 'fitterargs' in kwords:
            # means wasn't in kargs initially
            oldkargs['fitterargs'] = self.fitterargs
            self.fitterargs = dict(self.fitterargs)
        if len(fargs) > 0:
            self.fitterargs.update(fargs)
        kargs['fitterargs'] = dict(self.fitterargs)
        return kargs, oldkargs