public static function path($stack = false) {
		if (false === $stack) {
			return __FILE__;
		}

		if (!defined('DEBUG_BACKTRACE_IGNORE_ARGS')) {
			define('DEBUG_BACKTRACE_IGNORE_ARGS', 2);
		}

		$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
		if (empty($trace[$stack])) {
			throw new Exception();
		}
		return $trace[$stack]['file'];
	}