public static Object[][] slicesFromAllBoundaries(Object[] sequence, Boolean[] boundaries) {
		List<Object[]> slices = new LinkedList<Object[]>();

		int start = -1;
		int end = -1;
		// Go through all boundaries, slicing out each spot
		for (int i = 0; i < boundaries.length; i++) {
			if (boundaries[i]) {
				start = end;
				end = i;

				// Now get the appropriate slice. Increase start and
				// end by one since they are aligned one left of the text
				 slices.add(Arrays.copyOfRange(sequence, start + 1, end + 1, sequence.getClass()));
			}
		}
		// Now get the final slice, similarly offset end by 1
		slices.add(Arrays.copyOfRange(sequence, end + 1, sequence.length, sequence.getClass()));

		// Do a crazy conversion to Object[][], thanks toArray!
		return slices.toArray(DUMMY_OBJECT_NESTED_ARRAY);
	}