public function cascade() {
        return $this->cache([__METHOD__, $this->current()->getCode()], function() {
            $cycle = [];

            foreach ([$this->current(), $this->getFallback()] as $locale) {
                while ($locale instanceof Locale) {
                    $cycle[] = $locale->getCode();

                    $locale = $locale->getParentLocale();
                }
            }

            $cycle = array_unique($cycle);

            $this->emit('g11n.onCascade', [$this, &$cycle]);

            return $cycle;
        });
    }