OptionalcacheIf true and the value is a provider function, it is only invoked once.
Otherwise the function is invoked for every call for key.
Default is true.
OptionaloverwriteIf true and there is a provider already, the existing provider is replaced.
Otherwise an error is thrown.
Options accepted by the register* functions.