How to make WP_Query not to show irrelevant posts?

You’re one array short. The tax_query is an array of arrays.

$args = array(  'post_type' => POST_TYPE,
                'tax_query' => array( 
                     array (
                      'taxonomy' => TAX,
                      'field' => 'slug',
                      'terms' => TERM
                     ), 
                 ),
                'posts_per_page' => 2
             );

See http://ottopress.com/2010/wordpress-3-1-advanced-taxonomy-queries/ for more.