GWAS: matched-pairs and logistic regression
My first thought was to suggest a mixed effects model, so I will describe that first. But having had a Google there are models known as "Conditional logistic regression" models in which you can include any data structure as a covariate, which may be more appropriate, but I cannot vouch for them as I haven't used them. I would suggest reading the documentation.

Mixed effects models

I only know how to do this in R (stats language - www.r-project.org), but if you're using PLINK (so presumably also UNIX) R is pretty straightforward.

There are a couple of packages available for mixed effects models, my personal preference is function lme in package nlme (CRAN link). This type of model allows you to specify 2 types of independent variable (e.g. age, BMI, ethnicity... in your case);


Fixed effects - such as age, sex (something that is a phenotype of the samples),
Random effects - such as batch or other "technical" consideration,


This means you can format a model as you would before, but include an additional "random effects" term for your "matched" variable;

model = lme( fixed= outcome ~ exposure + covariate1, random= 1|matched )


.

Conditional logistic regression models

In the survival package for R there is a function called clogit (CRAN link) which seems to do exactly what you want. Although I have never used it myself.

From what I can gather this allows you to run a logistic regression with an additional covariate strata(matched), so your model may look like

model = clogit( outcome ~ exposure + covariate1 + strata(matched) )


.

Disclaimer!

This may not be exactly what you are after, as I'm not familiar with your data, so I would suggest heading over to https://stats.stackexchange.com/ as well, and searching for questions about regression analysis and paired observations - if none answer your question then ask a fresh one.