fix(core): match module refs by IS-A so a subclass provider resolves (#3408)