Custom providersAsynchronous providersDynamic modulesInjection scopesCircular dependencyModule referenceLazy-loading modulesExecution contextLifecycle eventsPlatform agnosticismTesting