pinMode((LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED9,LED10),OUTPUT); // set each LED to pins
This probably doesn't do what you intend. You can't pass a list of pin numbers to pinMode().
You only show one 'case' and you left the 'break;' statement at the end of that off.
My guess is that some of your patterns take a long time to execute. If they do, typically because there are delay() calls, you can't change patterns until they return. The button will have to be down at the time one cycle of the pattern finishes in order to switch to the next pattern. One way to fix that is to use code from the "BlinkWithoutDelay" example and write your patterns WITHOUT delays.
void pattern1()
{
static int patternStep = 0;
static unsigned long stepTime = 0;
switch (patternStep)
{
case 0:
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
patternStep = 1;
stepTime = millis();
break;
case 1:
if (millis() - stepTime > 50)
{
patternStep = 2;
}
break;
case 2:
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
patternStep = 3;
stepTime = millis();
break;
case 3:
if (millis() - stepTime > 50)
{
patternStep = 0;
}
break;
}
}