Ah just noticed that `version` parameter is optional and will cause notice in the checking if they're not defined.

How should we handle them? should we check if it's set and set them to `false` if it's not? then it will looks like this:

		public function register( $plugin ) {

			if ( ! isset( $plugin['slug'] ) || ! isset( $plugin['name'] ) )
				return;

			// Check if plugin with the same name and version already registered.
			!isset($plugin['version']) and $plugin['version'] = false;
			foreach ($this->plugins as $reg) {
				!isset($reg['version']) and $reg['version'] = false;
				if( $plugin['name'] === $reg['name'] and $plugin['version'] === $reg['version'] )
					return;
			}

			$this->plugins[] = $plugin;

		}