Count results after filtering out
Test:

SELECT metaval, COUNT(DISTINCT tour_id) 
FROM metas, ( SELECT tour_id 
              FROM metas 
              WHERE (metakey, metaval) IN ((3, 5), (4, 6)) -- or (2, 6) ?
              GROUP BY tour_id 
              HAVING COUNT(tour_id) = 2 ) tours 
WHERE metas.tour_id = tours.tour_id
GROUP BY metaval