private List<CompositeState<TransitionInput>> collectCompositeStates(State<TransitionInput> state) {
		List<CompositeState<TransitionInput>> composites = new ArrayList<>();

		for(CompositeState<TransitionInput> composite : state.getComposites()) {
			int insertionPosition = composites.size();
			while(composite != null) {
				composites.add(insertionPosition,composite);
				composite = composite.getParent();
			}
		}

		return composites;
	}