static public function flatten(array $array, $prefix = '', $keepEmptyArrayNode = TRUE, $segmentationCharacter = self::SEGMENTATION_CHARACTER) {
		$flatArray = array();
		foreach ($array as $key => $value) {
			// Ensure there is no trailling dot:
			$key = rtrim($key, $segmentationCharacter);
			if (!is_array($value) || (count($value) === 0 && $keepEmptyArrayNode)) {
				$flatArray[$prefix . $key] = $value;
			} else {
				$flatArray = array_merge($flatArray, self::flatten($value, $prefix . $key . $segmentationCharacter, $keepEmptyArrayNode));
			}
		}
		return $flatArray;
	}