title: Can scoping create objects using scope Id as a parameter?
body: <p>I have a crypto module that provides my keystore, and a factory that allows me to get a secret key from the keystore based on the key name, like so:</p>
  
  <pre><code>var cryptoModule = module {
     single {
        getKeyStore()
     }
     factory { (keyAlias: String) -&gt;
        getKey(keyAlias, get())
     }
  }
  
  fun getKeyStore(): KeyStore
  fun getKey(keyAlias: String, keyStore: KeyStore) : SecretKey
  </code></pre>
  
  <p>I then want to be able to create a user session, and get back a SecretKey key based on the userId, which is what I use for the scopeId, like so:</p>
  
  <pre><code>var sessionModule = module {
     scope(name("SESSION")) {
        scoped(name("sessionKey")) { 
           getKey(ScopeID(), get()
        }
     }
  }
  </code></pre>
  
  <p>I'm tryin to get everything going, and I wind up getting crash when I call startKoin and pass it my crypto and session modules - complains about the first parameter to getKey not being provided.  I'm attempting to use it like this:</p>
  
  <pre><code>lateinit var userId: String
  val sessionScope = getKoin().createScope(userId,name("SESSION"))
  val userKey : SecretKey by scope.inject(name("sessionKey"))
  </code></pre>
  
  <p>So, what am I doing wrong?  Can koin support this, or is my thinking about scopes incorrect in some fashion?</p>