public static function filterByKeyPrefix($array, $prefix)
	{
		$filtered = array();
		
		// if $array and $prefix are given
		if ($array !== null && $prefix !== null) {
			// if $array is actually an array
			if (is_array($array)) {
				// if $prefix is a string
				if (is_string($prefix)) {
					// if $array is not empty
					if ( ! empty($array)) {
						// filter the array by the key's prefix
						$filtered = self::filterByKey($array, function ($k) use ($prefix) {
							return strpos($k, $prefix) === 0;
						});
					}
				} else {
					throw new \InvalidArgumentException(
						__METHOD__."() expects parameter two to be a string prefix"
					);
				}
			} else {
				throw new \InvalidArgumentException(
					__METHOD__."() expects parameter one to be an array"
				);
			}
		} else {
			throw new \BadMethodCallException(
				__METHOD__."() expects two parameters, an array and a string prefix"
			);
		}

		return $filtered;
	}