/**
  * {@inheritdoc}
  */
 public function match(array $parameters = [])
 {
     if (isset($parameters['id'])) {
         return $parameters;
     }
     if (!isset($parameters['slug'])) {
         App::abort(404, 'Userprofile not found.');
     }
     $slug_key = App::module('bixie/userprofile')->config('slug_key', 'username');
     $slug = $parameters['slug'];
     $id = false;
     foreach ($this->cacheEntries as $entry) {
         if ($entry[$slug_key] === $slug) {
             $id = $entry['id'];
         }
     }
     if (!$id) {
         switch ($slug_key) {
             case 'id':
                 $user = User::find($slug);
                 break;
             case 'name':
                 $user = User::where(['name' => $slug])->first();
                 break;
             case 'username':
                 $user = User::findByUsername($slug);
                 break;
             default:
                 $user = false;
                 break;
         }
         if (!$user) {
             App::abort(404, 'Userprofile not found.');
         }
         $this->addCache($user);
         $id = $user->id;
     }
     $parameters['id'] = $id;
     return $parameters;
 }
 /**
  * {@inheritdoc}
  */
 public function findByUsername($username)
 {
     return User::findByUsername($username);
 }