protected function walk_backward(callable $code)
    {
        for (end($this->array); null !== ($hash = key($this->array)); prev($this->array)) {
            $key   = $this->hash_to_key($hash);
            $current = current($this->array);
            $value =& $current;
            if (! $this->passes($this->call($code, $value, $key))) {
                break;
            }
        }
        return $this;
    }