<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def addIdentifier(self, identifier=None, seed=None, signer=None, alias=None, didMethodName=None):
 """ Adds signer to the wallet. Requires complete signer, identifier or seed. :param identifier: signer identifier or None to use random one :param seed: signer key seed or None to use random one :param signer: signer to add :param alias: a friendly readable name for the signer :param didMethodName: name of DID Method if not the default :return: """


        dm = self.didMethods.get(didMethodName)
        signer = signer or dm.newSigner(identifier=identifier, seed=seed)
        self.idsToSigners[signer.identifier] = signer
        if self.defaultId is None:
            # setting this signer as default signer to let use sign* methods
            # without explicit specification of signer
            self.defaultId = signer.identifier
        if alias:
            signer.alias = alias
        if signer.alias:
            self.aliasesToIds[signer.alias] = signer.identifier
        return signer.identifier, signer