This code wasn't changed with this branch, but shouldn't the `_pendingScopes` queue only be checked for `id` in the case where `id` was actually *added* to the `defaultScopeOrder`? It looks like this is done in all case, including when `id` was only added to the `_pendingScopes` queue.