public RecipeBook RecipeMatcher(Recipe in) {

		RecipeBook res = new RecipeBook();
		RecipeBook cq = new RecipeBook();
		Recipe n = new Recipe("n");
		
		RNode finger = in.first();
		
		while (finger != null) 
		{
			n.add(finger.getElement());
			cq.add(n.copy());
			n.remove(finger.getElement());
			finger = finger.getNext();
		}
		
		while (!cq.isEmpty()) 
		{
			Recipe n2 = cq.firstR();
			cq.remove(n2);
			if(bevat(n2))
			{
				res.add(ref(n2));
			}
			
			else
			{  
				RNode f2 = in.first();
				while(f2 != null)
				{	
					if(!n2.bevat(f2.getElement()))
					{	
						n2.add(f2.getElement());
						
						if(n2.size() <= maxSizeR())
						   cq.add(n2.copy());
						
						else break;
						
						n2.remove(f2.getElement());
					}
					f2 = f2.getNext();
				}
			}
		}
		return res;
	}