public function getSingularForm($root) {
		$singularForm = $root;

		if (!is_string($root)) {
			throw new \InvalidArgumentException('The pluralizer expects a string.');
		}

		if (!in_array(strtolower($root), $this->uncountable)) {
			if (null !== $replacement = $this->checkIrregularForm($root, array_flip($this->irregular))) {
				$singularForm = $replacement;
			} elseif (null !== $replacement = $this->checkIrregularSuffix($root, $this->singular)) {
				$singularForm = $replacement;
			} elseif (!$this->isSingular($root)) {
				// fallback to naive singularization
				return substr($root, 0, -1);
			}
		}

		return $singularForm;
	}