public function confirm($values) {
        $this->confirmed = FALSE;

        $values = Misc::unflattenArray($values, "-");

        foreach($this->getFormElements() as $name => $child) {
            $child->setValue(array_key_exists($name, $values) ? $values[$name] : NULL);
            $this->value->offsetSet($name, $child->getValue(FALSE));
        }

        if(!$this->validate()) {
            return FALSE;
        }

        if(!$this->fireEvent("Form\onConfirm", [ $this->value, $this ], TRUE, FALSE)) {
            return FALSE;
        }

        $this->applyFilter();

        return $this->confirmed = TRUE;
    }