Would you consider accepting an object for the algorithm parameter in jwsVerify, as well checking for the presence of opts.algo in jwsSign? This would involve checking for string vs object to decide whether to use jwa or use it as is.
This way someone could pass {sign: function, verify: function} to support custom algorithms without needing to rewrite this module.