public function mapKeys(array $replaces, $strict = true)
    {
        $mapped = [];
        foreach ($this->value as $key => $value) {
            if (isset($replaces[$key])) {
                $newKey = $replaces[$key];
            } elseif ($strict) {
                throw new UnexpectedKeyException('Key "' . $key . '" not found in map.');
            } else {
                $newKey = $key;
            }
            
            $mapped[$newKey] = $value;
        }
        
        $this->value = $mapped;
        
        return $this;
    }