Почему код не работает ?
При каждом вызове функции объявляется новая переменная и создаётся новый интервал. Интервал-то останавливается, но не тот, который был создан при предыдущем вызове, а новый.var snake = { 
     interval : {
		right : function (start){
			if( start == "stop"){
				clearInterval(this.inter);
			} else {
				this.inter = setInterval(function(){}, 500)
			}
		}
	}
};

snake.interval.right();
snake.interval.right("stop");
В этом случае id интервала будет лежать в snake.interval.inter, и вызов с "stop" будет останавливать именно его.
А в консоле нет никаких ошибок?