public static Expression and(Expression... expressions)
    {
        return and(Arrays.asList(expressions));
    }
@Test
    public void testAnd()
    {
        Expression a = name("a");
        Expression b = name("b");
        Expression c = name("c");
        Expression d = name("d");
        Expression e = name("e");

        assertEquals(
                ExpressionUtils.and(a, b, c, d, e),
                and(and(and(a, b), and(c, d)), e));

        assertEquals(
                ExpressionUtils.combineConjuncts(a, b, a, c, d, c, e),
                and(and(and(a, b), and(c, d)), e));
    }